/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb.cliente;

import applicationexcepcion.OrdineException;
import applicationexcepcion.OrdineQuantitaException;
import entity.Prodotto;
import entity.SpeseSpedizione;
import java.util.List;
import javax.ejb.Local;

/**
 *
 * @author Valerio
 */
@Local
public interface CarrelloEJBLocal {

    void aggiungiProdottoAlCarrello(final Long idProdotto, final Long idNegozio, final Integer quantita) throws OrdineQuantitaException;

    void rimuoviProdottoDalCarrello(Long idProdotto, Long idNegozio);

    void rimuoviQuantitaDalCarrello(Long idProdotto, Integer quantita, Long idNegozio);

    List<Prodotto> getProdotti();

    Integer getQuantitaProdotto(Long idProdotto);

    Integer getQuantitaProdotto(Prodotto prodotto);

    Float getSubTotale();

    Float getTotale(SpeseSpedizione spese);

    void processaOrdine(Long idCliente, SpeseSpedizione spese) throws OrdineException;

    void svuotaCarrello();

    boolean isEmpty();
}
